#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.common.bean.po;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Description: User po
 *
 * @author wupanhua
 * @date 2019/8/6 15:28
 *
 * <pre>
 *              ${copyright}
 *      Copyright (c) 2019. All Rights Reserved.
 * </pre>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private Long id;
    /**
     *用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String username;
    /**
     *密码
     */
    @ApiModelProperty("密码")
    private String password;
    /**
     *用户姓名
     */
    @ApiModelProperty("用户姓名")
    private String nickname;
    /**
     *性别
     */
    @ApiModelProperty("性别")
    private String gender;
    /**
     *电子邮箱
     */
    @ApiModelProperty("电子邮箱")
    private String email;
    /**
     *移动电话
     */
    @ApiModelProperty("移动电话")
    private String mobilephone;
    /**
     *电话
     */
    @ApiModelProperty("电话")
    private String telephone;
    /**
     *职位
     */
    @ApiModelProperty("职位")
    private String job;
    /**
     *用户组主键(可以是部门，公司)
     */
    @ApiModelProperty("用户组主键(可以是部门，公司)")
    private Long groupId;
    /**
     *账户类型：1：普通用户，2：VIP用户，3：超级管理员
     */
    @ApiModelProperty("账户类型：1：普通用户，2：VIP用户，3：超级管理员")
    private Integer type;
    /**
     *用户头像
     */
    @ApiModelProperty("用户头像")
    private String icon;
    /**
     *账户状态：0：禁用，1：启用，2：邮箱未验证，3：手机号未验证
     */
    @ApiModelProperty("账户状态：0：禁用，1：启用，2：邮箱未验证，3：手机号未验证")
    private Integer status;
    /**
     *最后一次登录时间
     */
    @ApiModelProperty("最后一次登录时间")
    private Date lastlogindate;
    /**
     *创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createdate;
    /**
     *更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updatedate;
    /**
     *关联角色表
     */
    @ApiModelProperty("关联角色表")
    private List<Role> roleArrayList;
    /**
     *用户全称
     */
    @ApiModelProperty("用户全称")
    private String fullName;
    /**
     *关联组织表
     */
    @ApiModelProperty("关联组织表")
    private List<Group> groupArrayList;
    /**
     *直接上级公司
     */
    @ApiModelProperty("直接上级公司")
    private List<Tree> directGroupArrayList;


    public User(Long id) {
        this.id = id;
    }

    public User(Long id, String name) {
        this.id = id;
        this.username = name;
    }
}
